package com.lsl.proxy_pattern.staticproxy.proxy;

import com.lsl.proxy_pattern.staticproxy.RealSubject.Pursuit;
import com.lsl.proxy_pattern.staticproxy.Subject.IGiveGift;

/**
 * 代理类也是抽象主题类的子类，它维持一个对真实主题对象的引用，调用在真实主题中实现的业务方法，
 * 在调用时可以在原有业务方法的基础上附加一些新的方法来对功能进行扩充或约束，最简单的代理类实现代码如下：
 *
 * @author liusl104
 */
public class Proxy implements IGiveGift {
    private Pursuit pursuit;

    public Proxy() {
        pursuit = new Pursuit();
    }

    @Override
    public void giveDolls() {
        pursuit.giveDolls();
    }

    @Override
    public void giveFlowers() {
        pursuit.giveFlowers();
    }

    @Override
    public void giveChocolate() {
        pursuit.giveChocolate();
    }
}
